package com.pic4493.utils;

import android.R.integer;
import android.app.Activity;
import android.content.Context;
import android.graphics.Rect;
import android.view.Display;
import android.view.WindowManager;

public class UtiUI
{
   private static UtiUI instance;

   private Context mContext;
   private int screenHeight;
   private int screenWidth;
   private int stateBarHeight;
   
   public UtiUI(Context context)
   {
	  Activity sActivity=(Activity)context;
	  WindowManager windowManager=sActivity.getWindowManager();
	  mContext=context;
	  instance = this;
	  Display display = windowManager.getDefaultDisplay();
	  Rect rect= new Rect();  
	  sActivity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);  
	  this.stateBarHeight = rect.top;
	  this.screenHeight = display.getHeight(); // 屏幕高度
	  this.screenWidth = display.getWidth(); // 屏幕宽度
   }

   public static void init(Context context)
   {
      instance=new UtiUI(context);
   }
   
   public static UtiUI getInstance()
   {
	  return instance;
   }

   /**
    * 除去状态栏的屏幕高度
    * @return
    */
   public int getScreenHeightNoStatebar()
   {
	  return (screenHeight-stateBarHeight);
   }
   
   /**
    * 获取状态栏高度
    * @return
    */
   public int getStateBarHeight()
   {
	  return stateBarHeight;
   }
   
   /**
    * 获得屏幕的高度。
    * 
    * @return
    */
   public int getScreenHeight()
   {
	  return screenHeight;
   }

   /**
    * 获得屏幕的宽度。
    * 
    * @return
    */
   public int getScreenWidth()
   {
	  return screenWidth;
   }
   /**
    * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
    */
   public int dip2px(float dpValue)
   {
	  final float scale = mContext.getResources().getDisplayMetrics().density;
	  return (int) (dpValue * scale + 0.5f);
   }
   /**
    * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
    */
   public static int dip2px(Context context, float dpValue)
   {
	  final float scale = context.getResources().getDisplayMetrics().density;
	  return (int) (dpValue * scale + 0.5f);
   }
   /**
    * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
    */
   public int px2dip(float pxValue)
   {
	  final float scale = mContext.getResources().getDisplayMetrics().density;
	  return (int) (pxValue / scale + 0.5f);
   }
   /**
    * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
    */
   public static int px2dip(Context context, float pxValue)
   {
	  final float scale = context.getResources().getDisplayMetrics().density;
	  return (int) (pxValue / scale + 0.5f);
   }
}
